home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Coverdisks / CDU / V4D11.D64 / basic demo (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.2 KB  |  83 lines

  1. 0 REM * * * * * * * ** * * * * * * *
  2. 1 REM *                            *
  3. 2 REM *     SPRITE  PRIORITIES     *
  4. 3 REM *        A BASIC DEMO        *
  5. 4 REM *          BY BONES          *
  6. 5 REM *                            *
  7. 6 REM * * * * * * * ** * * * * * * *
  8. 7 :
  9. 8 :
  10. 9 :
  11. 10 GOSUB66:REM  * INITIALISE
  12. 11 :
  13. 12 REM ***** PROGRAM MAINLOOP *****
  14. 13 :
  15. 14 GOSUB55:REM  * KEYPRESS
  16. 15 JV=PEEK(JS)AND15:IFJV=15THEN14
  17. 16 GOSUB21:REM EXECUTE JOY COMMANDS
  18. 17 GOTO14
  19. 18 :
  20. 19 REM     *** JOYSTICK UP ***
  21. 20 :
  22. 21 IFJV<>14THEN32
  23. 22 DS(K)=DS(K)-4:IFDS(K)<50THENDS(K)=50
  24. 23 POKEV+1+(N*2),DS(K)
  25. 24 IFPEEK(V+3+(N*2))<=PEEK(V+1+(N*2))THEN28
  26. 25 SYS52832:REM * PRIORITISE SPRITES
  27. 26 N=N+1:IFN>7THENN=7
  28. 27 IFN<>0THENGOSUB64
  29. 28 RETURN
  30. 29 :
  31. 30 REM   *** JOYSTICK DOWN ***
  32. 31 :
  33. 32 IFJV<>13THEN43
  34. 33 DS(K)=DS(K)+4:IFDS(K)>208THENDS(K)=208
  35. 34 POKEV+1+(N*2),DS(K)
  36. 35 IFPEEK(V+1+(N*2))<=PEEK(V-1+(N*2))THEN39
  37. 36 SYS52832:REM * PRIORITISE SPRITES
  38. 37 IFN<>0THEN GOSUB64
  39. 38 N=N-1:IFN<0THENN=0
  40. 39 RETURN
  41. 40 :
  42. 41 REM  *** JOYSTICK LEFT/RIGHT ***
  43. 42 :
  44. 43 Y=PEEK(V+(N*2))
  45. 44 IFJV<>11THEN47
  46. 45 Y=Y-6:IFY<24THENY=24
  47. 46 GOTO49
  48. 47 IFJV<>7THEN23
  49. 48 Y=Y+6:IFY>255THENY=255
  50. 49 POKEV+(N*2),Y
  51. 50 RETURN
  52. 51 :
  53. 52 REM   *** SELECT-A-SPRITE ***
  54. 53 REM     *   KEYS 1 TO 8   *
  55. 54 :
  56. 55 GETK$:X=VAL(K$):IFX<1ORX>8THEN60
  57. 56 K=X-1
  58. 57 FORC=0TO7
  59. 58 IFF(C)=KTHENN=C
  60. 59 NEXT
  61. 60 RETURN
  62. 61 :
  63. 62 REM  *** UPDATE F(LAG) ARRAY ***
  64. 63 :
  65. 64 Z=F(N):F(N)=F(N-1):F(N-1)=Z:RETURN
  66. 65 :
  67. 66 REM     *** INITIALISE ***
  68. 67 :
  69. 68 POKE53280,0:POKE53281,0:PRINT"[147]"
  70. 69 V=53248:JS=56320:DP=2040:PO=192:DIMDS(7),F(7):N=0:JV=0:K=0:
  71. 70 FORC=0TO64:POKE12288+C,255:NEXT:REM * FILL SPRITE IMAGES WITH BLANKS
  72. 71 FORC=0TO7:POKEDP+C,PO:REM * DATA POINTERS
  73. 72 REM
  74. 73 REM
  75. 74 REM
  76. 75 POKEV+39+C,C+1:REM * COLOUR SPRITES
  77. 76 NEXTC
  78. 77 X=50:FORC=0TO14STEP2:POKEV+C,X:X=X+10:NEXT:REM * POKE X COORDS
  79. 78 Y=200:FORC=1TO15STEP2:POKEV+C,Y:Y=Y-10:NEXT:REM * POKE Y COORDS
  80. 79 FORC=0TO7:DS(C)=PEEK(V+1+(C*2)):F(C)=C:NEXT:REM * SET UP ARRAYS
  81. 80 POKEV+21,255:REM * ENABLE SPRITES
  82. 81 RETURN
  83.